﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using AbstraX.XPathBuilder;
using System.Diagnostics;
using AbstraXLocalTest;

namespace AbstraX.ClientInterfaces
{
    public static class ExtensionMethods
    {
        public static void ExecuteWhere(this IBase baseObject, string property, object value)
        {
            IoC.Resolve<IRootSurrogate>().ExecuteWhere(baseObject, property, value);
        }

        public static void ExecuteWhere(this IBase baseObject, Expression expression)
        {
            IoC.Resolve<IRootSurrogate>().ExecuteWhere(baseObject, expression);
        }

        public static void ExecuteWhere(this IBase baseObject, XPathAxisElement element)
        {
            IoC.Resolve<IRootSurrogate>().ExecuteWhere(baseObject, element);
        }

        public static void ExecuteWhere(this IBase baseObject, XPathAxisElement element, XPathAxisElement childrenElement)
        {
            IoC.Resolve<IRootSurrogate>().ExecuteWhere(baseObject, element, childrenElement);
        }

        public static void ExecuteGlobalWhere(this IRoot root, XPathAxisElement element)
        {
            IoC.Resolve<IRootSurrogate>().ExecuteGlobalWhere(root, element);
        }

        public static void ClearPredicates(this IBase baseObject)
        {
            IoC.Resolve<IRootSurrogate>().ClearPredicates(baseObject);
        }
    }
}
